This makes it easier to understand for gcc (and hopefully humans, too)
that by rotating we essentially just swap `node` and `p`.
if (node == p->right)
{
/* make node a left child */
- node = p;
- gtk_rb_node_rotate_left (tree, node);
- p = parent (node);
- pp = parent (p);
+ gtk_rb_node_rotate_left (tree, p);
+ p = node;
+ node = p->left;
}
/* recolor and rotate */
set_black (p);
/* uncle is black */
if (node == p->left)
{
- node = p;
- gtk_rb_node_rotate_right (tree, node);
- p = parent (node);
- pp = parent (p);
+ gtk_rb_node_rotate_right (tree, p);
+ p = node;
+ node = p->right;
}
set_black (p);
set_red (pp);